package reflect;

import java.lang.reflect.Constructor;

/**
 * 使用有参构造器实例化对象
 */
public class ReflectDemo3 {
    public static void main(String[] args) throws Exception {
        Person p = new Person("李四");
        System.out.println(p);

        Class cls = Class.forName("reflect.Person");
        /*
            通过类对象获取要操作的构造器
            获取该构造器:Person(String name)
         */
        //Constructor类的每一个实例用于表示一个构造方法
//        Constructor c = cls.getConstructor();//不传参获取的就是无参构造器
        Constructor c = cls.getConstructor(String.class);//Person(String name)
        Object o = c.newInstance("王五");//new Person("王五")
        System.out.println(o);

        //Person(String name,int age)
        Constructor c1 = cls.getConstructor(String.class,int.class);
        Object o2 = c1.newInstance("赵六",25);//new Person("赵六",25);
        System.out.println(o2);

    }
}
